#include <57header.h>

// 客户端
int main(int argc,char*argv[])
{
    char *port = "8080";
    char *ip = "192.168.106.129";

    int socket_fd = socket(AF_INET, SOCK_STREAM, 0);


    struct sockaddr_in sockaddr;
    sockaddr.sin_family = AF_INET;
    sockaddr.sin_port = htons(atoi(port));
    sockaddr.sin_addr.s_addr = inet_addr(ip);

    int ret = connect(socket_fd,(struct sockaddr *)&sockaddr, sizeof(sockaddr));
    ERROR_CHECK(ret, -1, "connect");

    // 监听集合
    fd_set set;
    FD_ZERO(&set);

    while(1){
        // 放入监听
        FD_SET(STDIN_FILENO, &set);
        FD_SET(socket_fd, &set);

        // 开始监听
        select(10, &set, NULL, NULL, NULL);

        if(FD_ISSET(STDIN_FILENO, &set)){
            // 说明标准输入， 有内容输入
            // 读取标准输入
            char buf[60] = {0};
            read(STDIN_FILENO, buf, sizeof(buf));
            send(socket_fd, buf, sizeof(buf), 0);
        }
        if(FD_ISSET(socket_fd, &set)){
            // 说明服务端发送信息过来
            // 读取网络数据
            char buf[60] = {0};
            int ret = recv(socket_fd,buf, sizeof(buf), 0);
            if(ret == 0){
                printf("对方关闭链接 \n");
                break;
            }
            printf("serve: %s \n", buf);
        }
    }

    close(socket_fd);
    return 0;
}

